/**
 * 
 */
package com.oauth.linkedin.server.service;

import java.util.List;

import com.oauth.common.server.beans.OAuthAccessToken;
import com.oauth.common.server.beans.OAuthRequestToken;
import com.oauth.linkedin.client.beans.LinkedinUser;
import com.oauth.linkedin.server.beans.LinkedinRequestToken;

/**
 * Help to abstract all linkedin api specific classes.
 * 
 * @author asanthan
 * 
 */
public interface LinkedinService {

	OAuthAccessToken getAccessTokenFromDB(Long pMemberId) throws Exception;

	OAuthAccessToken getAccessTokenFromRequestToken(
			OAuthRequestToken pRequestToken, String pVerifier) throws Exception;

	LinkedinRequestToken getRequestToken() throws Exception;

	void persistAccessToken(OAuthAccessToken pAccessToken, Long pMemberId)
			throws Exception;

	List<LinkedinUser> getConnections(Long pMemberId) throws Exception;

	LinkedinUser getLinkedinUser(Long pMemberId) throws Exception;

	List<LinkedinUser> getUpdates(Long pMemberId) throws Exception;

	List<LinkedinUser> getMessages(Long pMemberId) throws Exception;

	void updateStatus(String pText, Long pMemberId) throws Exception;
}
